home *** CD-ROM | disk | FTP | other *** search
/ Network PC / Network PC.iso / amiga utilities / performance / memory / tinymeter / source / tinymeter_main / volumes.c < prev   
Encoding:
C/C++ Source or Header  |  1997-11-20  |  1.3 KB  |  58 lines

  1. #include <exec/types.h>
  2. #include <exec/memory.h>
  3. #include <dos/dos.h>
  4. #include <dos/dosextens.h>
  5. #include <dos/notify.h>
  6. #include <string.h>
  7. #include <intuition/classes.h>
  8. #include <clib/macros.h>
  9. #include "gaugeclass.h"
  10. #include "tinymeter.h"
  11.  
  12. getVolsize(struct tm_data *data,char *volname)
  13. {
  14.     struct InfoData  inf;
  15.     struct DevProc  *devproc;
  16.     if(devproc=(struct DevProc *)GetDeviceProc(volname,NULL))
  17.     {
  18.     if( DoPkt(devproc->dvp_Port,ACTION_DISK_INFO,MKBADDR(&inf),NULL,NULL,NULL,NULL)==DOSTRUE)
  19.     {
  20.         switch(inf.id_DiskType)
  21.         {
  22.         case    0x42555359:
  23.             data->volmax=0;
  24.             data->volcur=GAU_err_busy;
  25.             break;
  26.         case    ID_UNREADABLE_DISK:
  27.             data->volmax=0;
  28.             data->volcur=GAU_err_unreadable;
  29.             break;
  30.         case    ID_NOT_REALLY_DOS:
  31.             data->volmax=0;
  32.             data->volcur=GAU_err_nodos;
  33.             break;
  34.         case    ID_NO_DISK_PRESENT:
  35.             data->volmax=0;
  36.             data->volcur=GAU_err_notpresent;
  37.             break;
  38.         case    ID_KICKSTART_DISK:
  39.             data->volmax=0L;
  40.             data->volcur=GAU_err_kickstart;
  41.             break;
  42.         default:
  43.             data->volcur=(inf.id_NumBlocks-inf.id_NumBlocksUsed)*inf.id_BytesPerBlock;
  44.             data->volmax=inf.id_NumBlocks*inf.id_BytesPerBlock;
  45.             data->voltype=inf.id_DiskType;
  46.             break;
  47.         }
  48.     }
  49.     FreeDeviceProc(devproc);
  50.     }
  51.     else
  52.     {
  53.     data->volmax=0;
  54.     data->volcur=GAU_err_notmount;
  55.     }
  56. }
  57.  
  58.